const url = require('url')

function Router(){
    this.stack = []
}
Router.prototype.get = function(pathname,handlers){
    this.stack.push({
        method:"get",
        pathname,
        handler
    })
}
Router.prototype.handle = function(req,res,done){
    let {pathname} = url.parse(req.url)
    let method = req.method.toLowerCase()
    for (let i = 0; i < this.stack.length; i++) {
        let {method:routeMethod,pathname:routePath,handler} = this.stack[i]
        if(pathname === routePath && method === routeMethod) {
            return handler(req,res)
        }
    }
    done()
}
module.exports = Router


// 1） 创建应用会有一个路由系统 （存放的是一层层的）  每一层中存放的 是路径和方法
// 2)  路由系统中的每一层我们都提供一个Route的实例 ， layer.route = new Route
// 3) Route是一个类，每一个路由都有这个实例，实例中会创造一个stack， 用来存放用户注册的回调 （我们把存的回调也封装成layer） 里面的layer不需要在意路径
// 每一个layer需要存放方法 
// 外层的stack 需要匹配路径  ， 里层stack 需要匹配方法